47638f572d9d8d0246a9fd984f3e00a38bd17436,tephra-hbase-compat-1.1/src/test/java/co/cask/tephra/hbase11/coprocessor/TransactionProcessorTest.java,TransactionProcessorTest,testDeleteMarkerCleanup,#,258
Before Change
// read all back
scan = new Scan(row);
scan.setFilter(new TransactionVisibilityFilter(
TxUtils.createDummyTransaction(txVisibilityState), new TreeMap<byte[], Long>(), false, ScanType.USER_SCAN));
regionScanner = region.getScanner(scan);
results = Lists.newArrayList();
assertFalse(regionScanner.next(results));
assertEquals(3, results.size());
// only even columns should exist
for (int i = 0; i < 3; i++) {
Cell cell = results.get(i);
LOG.info("Got cell " + cell);
assertArrayEquals(row, cell.getRow());
byte[] idxBytes = Bytes.toBytes(i * 2);
assertArrayEquals(idxBytes, cell.getQualifier());
assertArrayEquals(idxBytes, cell.getValue());
}
// force another flush on the delete markers
// during flush, we should retain the delete markers, since they can only safely be dropped by a major compaction
LOG.info("After delete, flushing region " + region.getRegionInfo().getRegionNameAsString());
region.flushcache(true, false);
scan = new Scan(row);
scan.setFilter(new TransactionVisibilityFilter(
TxUtils.createDummyTransaction(txVisibilityState), new TreeMap<byte[], Long>(), false, ScanType.USER_SCAN));
regionScanner = region.getScanner(scan);
results = Lists.newArrayList();
assertFalse(regionScanner.next(results));
After Change
// read all back
scan = new Scan(row);
scan.setFilter(TransactionFilters.getVisibilityFilter(TxUtils.createDummyTransaction(txVisibilityState),
new TreeMap<byte[], Long>(), false, ScanType.USER_SCAN));
regionScanner = region.getScanner(scan);
results = Lists.newArrayList();
assertFalse(regionScanner.next(results));
assertEquals(3, results.size());
// only even columns should exist
for (int i = 0; i < 3; i++) {
Cell cell = results.get(i);
LOG.info("Got cell " + cell);
assertArrayEquals(row, cell.getRow());
byte[] idxBytes = Bytes.toBytes(i * 2);
assertArrayEquals(idxBytes, cell.getQualifier());
assertArrayEquals(idxBytes, cell.getValue());
}
// force another flush on the delete markers
// during flush, we should retain the delete markers, since they can only safely be dropped by a major compaction
LOG.info("After delete, flushing region " + region.getRegionInfo().getRegionNameAsString());
region.flushcache(true, false);
scan = new Scan(row);
scan.setFilter(TransactionFilters.getVisibilityFilter(TxUtils.createDummyTransaction(txVisibilityState),
new TreeMap<byte[], Long>(), false, ScanType.USER_SCAN));
regionScanner = region.getScanner(scan);
results = Lists.newArrayList();